package com.libros.model;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Sefer Sephirott
 */
public class BeanBDLibros {
    
    private BDLibros bd;
    private BeanDatosLibro libro;
    private BeanUsuario usuario;
    private ResultSet rs;
    private String mensaje;
    private int cant;
    
    public BeanBDLibros() {
        
        bd = new BDLibros();
        mensaje = "";
    }
    
    public ArrayList<BeanDatosLibro> getLibros(String tipo, String cadena){
        
        
        ArrayList<BeanDatosLibro> libros = new ArrayList<BeanDatosLibro>();
        
        if(bd.conexion() != null){

            try {
                
                rs = bd.consultaLibros(tipo, cadena);
                
                while(rs.next()){

                    libro = new BeanDatosLibro(rs.getInt("LIBRO_ID"),
                                               rs.getString("LIBRO_TITU"),
                                               rs.getString("AUTOR_NOMB"),
                                               rs.getString("EDIT_NOMB"),
                                               rs.getString("LIBRO_EDIC"),
                                               rs.getString("FECHA"),
                                               rs.getInt("LIBRO_VALOR"),0);
                    libros.add(libro);
                }

                bd.cerrarConexion();
                return libros;


            } catch (Exception ex) {
                System.out.println(ex);
                return null;
            }
        }
        else{
            System.out.println("Error : "+bd.getErrorBDLibros());
            return null;
        }
    }
    
    
    public String creaCliente(String nombre,String dir,int tel, String nick, String pass){
        
        bd.conexion();
        
        if(bd.getErrorBDLibros().equals("")){
            String val = bd.insertaCliente(nombre,nick, pass, dir, tel);
            bd.cerrarConexion();
            return val;
        }
        else{
            bd.cerrarConexion();
            return bd.getErrorBDLibros();
        }
   
    }
    
    
    public BeanUsuario autenticacion(String user, String pass) throws SQLException{
        
        bd.conexion();
        
        if(bd.getErrorBDLibros().equals("")){
            
            rs = bd.autenticar(pass, user);
            
            if(rs != null){

                usuario = new BeanUsuario(rs.getString("USER_NAME"), rs.getString("USER_USER"), rs.getString("USER_DIR"), Integer.parseInt(rs.getString("USER_TELE")));
                
                setMensajeBeanBDLibros(bd.getMensajeBDLibros());
                return usuario;
            }
            setMensajeBeanBDLibros(bd.getMensajeBDLibros());
            return null;
            
        }
        else{
            
            setMensajeBeanBDLibros(bd.getMensajeBDLibros());
            return null;
        }
        
    }
    
    public BeanDatosLibro libroParaCarrito(int idLibro, int cant){
        
        this.cant = this.cant + cant;
        
        if(bd.conexion() != null){
            
            try {
                
                rs = bd.libroParaCarrito(idLibro);
                
                rs.next();
                
                libro = new BeanDatosLibro(rs.getInt("LIBRO_ID"),
                                               rs.getString("LIBRO_TITU"),
                                               rs.getString("AUTOR_NOMB"),
                                               rs.getString("EDIT_NOMB"),
                                               rs.getString("LIBRO_EDIC"),
                                               rs.getString("FECHA"),
                                               rs.getInt("LIBRO_VALOR"),this.cant);
                
                return libro;
                
            } catch (SQLException ex) {
                setMensajeBeanBDLibros(""+ex);
                return null;
            }
            
        }
        
        return null;
        
        
    }
    
    public String getMensajeBeanBDLibros() {
        return mensaje;
    }

    public void setMensajeBeanBDLibros(String mensaje) {
        this.mensaje = mensaje;
    }
    
    
    
}
